主從復制,是用來建立一個和主數據庫完全一樣的數據庫環境,稱為從數據庫;主數據庫一般是準實時的業務數據庫。
主從復制的作用
1、做數據的熱備,作為後備數據庫,主數據庫服務器故障後,可切換到從數據庫繼續工作,避免數據丟失。
2、架構的擴展。業務量越來越大,I/O訪問頻率過高,單機無法滿足,此時做多庫的存儲,降低磁盤I/O訪問的頻率,提高單個機器的I/O性能。
3、讀寫分離,使數據庫能支撐更大的並發。在報表中尤其重要。由於部分報表sql語句非常的慢,導致鎖表,影響前台服務。如果前台使用master,報表使用slave,那麼報表sql將不會造成前台鎖,保證了前台速度。
1 環境
服務器:centos 6.7
主庫服務器: 10.0.186.19 10.0.14-MariaDB
從庫服務器: 10.0.186.18 10.0.14-MariaDB
2 主服務器配置
2.1 配置MY.CNF
編輯主服務器的/etc/my.cnf 輸入以下內容,保存後重啟mysql服務
2.2 創建主從復制專用用戶
MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.*
TO 'replication_slave' @ '10.0.186.%'
IDENTIFIED BY '123456' ; flush privileges;
2.3 加鎖並導出備份文件後
實際工作中,備份的時候是不允許往庫中寫數據的,所以數據庫備份之前需要加鎖,只能讀。
記住File和Position的部分,從服務器配置的時候會用到。
備份數據,輸入命令:
mysqldump -uroot -p --all-databases > /root/db.sql
數據備份完成後,拷貝到從服務中運行。
主庫保持鎖狀態,等待從庫完成配置。
3 從服務器配置
3.1 導入主庫的數據
mysql -uroot -p < db . sql
3.2 配置MY.CNF
編輯從服務器的/etc/my.cnf 輸入以下內容,保存後重啟mysql服務
3.3 設置主從復制
a.設置當前服務器為主服務器的從庫
b.提供當前數據庫(從庫)從主庫複製數據時所需的用戶名和密碼
c.指定從庫開始復制主庫時需要使用的日誌文件和文件位置,即上面主庫執行SHOW MASTER STATUS;顯示結果中的File和Position
#設置主從復制
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST= '10.0.186.19' ,
MASTER_USER= 'replication_slave' ,
MASTER_PASSWORD= '123456' ,
MASTER_LOG_FILE= 'mysql-bin-19.000004' ,
MASTER_LOG_POS= 8141977 ;
#開啟主從復制
MariaDB [(none)]> START SLAVE;
從庫開啟slave後可以到主庫上釋放主庫上的鎖:
MariaDB [(none)]> UNLOCK TABLES;
#查看從庫狀態
MariaDB [(none)]> show slave status\G
注意:結果中Slave_IO_Running和Slave_SQL_Running必須為Yes,如果不是,需要根據提示的錯誤修改。
4 驗證主從服務器
驗證方法:在主服務器上,選擇一個從服務器配置了同步的庫,建立一個測試表,插入測試數據。然後到從服務器查看測試表和測試數據是否已經同步。如果同步不成功,到服務器上查看日誌文件排查原因。
MYSQL主從服務器搭建- CSDN博客
https://blog.csdn.net/weixin_35852328/article/details/82252985